/**
 * Enumerated type of goods. Call on Goods.WATER for instance to get "water".
 * Goods.WATER.name should return name or if you're
 * iterating through the get methods also work.
 * 
 * @author Michelle Partogi, Araya Zaesim, Stanley Ayzenberg,  Adam Perez
 * @version 1.0
*/


public enum Goods {
	WATER ("Water", 0, 0,2,30,3,4, "DROUGHT", "LOTSOFWATER", "DESERT",30,50),
	FURS ("Furs", 0, 0, 0, 250, 10, 10, "COLD", "RICHFAUNA", "LIFELESS", 230, 280),
	FOOD ("Food", 1, 0, 1, 100, 5, 5, "CROPFAIL", "RICHSOIL", "POORSOIL", 90, 160),
	ORE ("Ore", 2, 2, 3, 350, 20, 10, "WAR", "MINERALRICH", "MINERALPOOR", 350, 420),
	GAMES ("Games", 3, 1, 6, 250, -10, 5, "BOREDOM", "ARTISTIC", "Never", 160, 270),
	FIREARMS ("Firearms", 3, 1, 5, 1250, -75, 100, "WAR", "WARLIKE", "Never", 600, 1100),
	MEDICINE ("Medicine", 4, 1, 6, 650, -20, 10, "PLAGUE", "LOTSOFHERBS", "Never", 400, 700),
	MACHINES ("Machine", 4, 3, 5, 900, -30, 5, "LACKOFWORKERS", "Never", "Never", 600, 800),
	NARCOTICS ("Narcotics", 5, 0, 5, 3500, -125, 150, "BOREDOM", "WEIRDMUSHROOMS", "Never", 2000, 3000),
	ROBOTS ( "Robots",6, 4, 7, 5000, -150, 100, "LACKOFWORKERS", "Never", "Never", 3500, 5000);
	
	/* Acronyms taken from wiki
	 * MTLP = Minimum Tech Level to Produce this resource (You can't buy on planets below this level)
	 * MTLU = Minimum Tech Level to Use this resource (You can't sell on planets below this level)
	 * TTP = Tech Level which produces the most of this item
	 * IPL = Price increase per tech level
	 * VAR = variance is the maximum percentage that the price can vary above or below the base
	 * 
	 * IE = Radical price increase event, when this even happens on a planet, the price may increase astronomically
	 * CR = When this condition is present, the price of this resource is unusually low
	 * ER = When this condition is present, the resource is expensive
	 * 
	 * MTL = Min price offered in space trade with random trader (not on a planet)
	 * MTH = Max price offered in space trade with random trader (not on a planet)
	 * 
	 * 
	 */
	
	
	public final String NAME; 
	public final int MTLP; 
	public final int MTLU;
	public final int TTP;
	public final int BASEPRICE;
	public final int IPL; 
	public final int VAR; 
	public final String IE; 
	public final String CR; 
	public final String ER; 
	public final int MTL; 
	public final int MTH;
	
	/*
	 * Goods constructor feed into Public final variables
	 * so you can call on them without changing them
	 */
	Goods (String NAME, int MTLP, int MTLU, int TTP, int BASEPRICE, int IPL, int VAR, String IE, String CR, String ER, int MTL, int MTH){
		this.NAME = NAME;
		this.MTLP = MTLP;
		this.MTLU = MTLU;
		this.TTP = TTP;
		this.BASEPRICE = BASEPRICE;
		this.IPL = IPL;
		this.VAR = VAR;
		this.IE = IE;
		this.CR = CR;
		this.ER = ER;
		this.MTL = MTL;
		this.MTH = MTH;
	}
	
	/*
	 * Gives you Good's name
	 * 
	 * @return NAME
	 */
	
	public String getNAME(){
		return NAME;
	}
	
	/*
	 * Gives you Good's Minimum Tech Level to Produce this resource (You can't buy on planets below this level)
	 * 
	 * @return MTLP
	 */
	
	public int getMTLP(){
		return MTLP;
	}
	
	/*
	 * Gives you Minimum Tech Level to Use this resource (You can't sell on planets below this level)
	 * 
	 * @return MTLU
	 */
	
	public int getMTLU(){
		return MTLU;
	}
	
	/*
	 * Gives you Good's Tech Level which produces the most of this item
	 * 
	 * @return TTP
	 */
	
	public int getTTP(){
		return TTP;
	}
	
	/*
	 * Gives you Good's BasePrice
	 * 
	 * @return MTLP
	 */
	
	public int getBASEPRICE(){
		return BASEPRICE;
	}
	
	/*
	 * Gives you Good's Price increase per tech level
	 * 
	 * @return IPL
	 */
	
	public int getIPL(){
		return IPL;
	}
	
	/*
	 * Gives you Good's variance is the maximum percentage that the price can vary above or below the base
	 * 
	 * @return VAR
	 */
	
	public int getVAR(){
		return VAR;
	}
	
	/*
	 * Gives you Good's Radical price increase event, when this even happens on a planet, the price may increase astronomically
	 * 
	 * @return IE
	 */
	
	public String getIE(){
		return IE;
	}
	
	/*
	 * Gives you Good's When this condition is present, the price of this resource is unusually low
	 * 
	 * @return CR
	 */
	
	public String getCR(){
		return CR;
	}
	
	/*
	 * Gives you Good's When this condition is present, the resource is expensive
	 * 
	 * @return ER
	 */
	
	public String getER(){
		return ER;
	}
	
	/*
	 * Gives you Good's Min price offered in space trade with random trader (not on a planet)
	 * 
	 * @return MTL
	 */
	
	public int getMTL(){
		return MTL;
	}
	
	/*
	 * Gives you Good's Max price offered in space trade with random trader (not on a planet)
	 * 
	 * @return MTH
	 */
	
	public int getMTH(){
		return MTH;
	}
	
}
